home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1997-01-29 | 5.9 KB | 235 lines |
- 10 'POTENT - Custome Potentiometer - 5 FEB 91 rev. 29 SEP 96
- 20 IF EX$=""THEN EX$="EXIT"
- 30 PROG$="potent"
- 40 COMMON EX$,PROG$,R,E 'for chaining to PRECIRES
- 50 CLS
- 60 COLOR 7,0,1
- 70 DIM SR(12) 'shaft rotation
- 80 UL$=STRING$(80,205) 'underline
- 90 ER$=STRING$(80,32) 'erase
- 100 U1$="######,###"
- 110 U3$="#####,###"
- 120 O$=" -"
- 130 '
- 140 '.....start
- 150 CLS
- 160 COLOR 15,2
- 170 PRINT " CUSTOM POTENTIOMETER";TAB(57);"by George Murphy VE3ERP ";
- 180 COLOR 1,0:PRINT STRING$(80,"<0xDF!>");
- 190 COLOR 7,0
- 200 '
- 210 '.....preface
- 220 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 230 GOSUB 1730 'text
- 240 PRINT
- 250 COLOR 0,7:LOCATE CSRLIN,22
- 260 PRINT " Press 1 to continue or 0 to EXIT.....";
- 270 COLOR 7,0
- 280 Z$=INKEY$:IF Z$=""THEN 280
- 290 IF Z$="0"THEN CLS:RUN EX$
- 300 IF Z$="1"THEN 330
- 310 GOTO 280
- 320 '
- 330 '.....diagram
- 340 VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
- 350 LOCATE 10,56:PRINT "VARPTRDEFDBL SOUNDSOUNDSOUNDCOLOR
- 360 LOCATE 11,56:PRINT "CALL CALL
- 370 LOCATE 12,56:PRINT "CALL BLOADSOUNDSOUNDSOUNDCOLOR
- 380 LOCATE 13,56:PRINT "CALL CALL CALL
- 390 LOCATE 14,56:PRINT " VARPTRSOUNDDEFDBLR1 R2
- 400 LOCATE 15,56:PRINT "CALL CLSSOUNDSOUND<0xB4!> CALL
- 410 LOCATE 16,56:PRINT "CALL BLOADSOUNDSOUNDSOUND'
- 420 LOCATE 17,56:PRINT "CALL CALL
- 430 LOCATE 18,56:PRINT "CLSDEFDBL SOUNDSOUNDSOUND'
- 440 COLOR 0,7:LOCATE 14,55:PRINT " R ":COLOR 7,0 'hi-lite R
- 450 '
- 460 '.....inputs
- 470 LOCATE 3
- 480 PRINT"ENTER: Desired custom full scale resistance (ohms).............R =";
- 490 INPUT R
- 500 IF R=0 THEN LOCATE CSRLIN-1:PRINT ER$;:GOTO 470
- 510 LOCATE CSRLIN-1:PRINT STRING$(6,32)
- 520 LOCATE CSRLIN-1,68:COLOR 0,7:PRINT USING U1$;R;:PRINT O$:COLOR 7,0
- 530 PRINT"ENTER: Value of a standard linear pot greater than R...........R1 =";
- 540 INPUT R1
- 550 IF R1<R THEN LOCATE CSRLIN-1:PRINT ER$;:LOCATE CSRLIN-1:GOTO 530
- 560 LOCATE CSRLIN-1:PRINT STRING$(6,32)
- 570 LOCATE CSRLIN-1,68:PRINT USING U1$;R1;:PRINT O$
- 580 Y=CSRLIN
- 590 LOCATE 14,62:COLOR 0,7:PRINT "R1":COLOR 7,0
- 600 LOCATE Y
- 610 IF R1=R THEN LOCATE CSRLIN-1:GOTO 530
- 620 R2=R*R1/(R1-R) 'parallel resistor
- 630 R2=INT(R2+0.5)
- 640 '
- 650 '.....display results
- 660 PRINT " Value of parallel resistance for full scale rotation....R2 =";
- 670 PRINT USING U1$;R2;:PRINT O$
- 680 COLOR 0,7
- 690 Y=CSRLIN
- 700 LOCATE 14,65:PRINT" R2=";:PRINT USING U3$;R2;:PRINT O$
- 710 LOCATE Y
- 720 COLOR 7,0
- 730 PRINT UL$;
- 740 '
- 750 LOCATE CSRLIN-1,28:PRINT "<0xCB!>";
- 760 LOCATE CSRLIN,54:PRINT "<0xCB!>"
- 770 PRINT " Rotation";
- 780 PRINT TAB(14);"R1";O$;
- 790 PRINT TAB(25);"R";O$;
- 800 PRINT TAB(28);"OPEN0DEFSNGSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND R SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDDEFDBLmaxOPEN";
- 810 COLOR 0,7
- 820 LOCATE CSRLIN,56:PRINT " R1 is a";USING U1$;R1;:PRINT ;O$;" ";
- 830 COLOR 7,0
- 840 PRINT STRING$(53,"THEN")
- 850 LOCATE CSRLIN-1,28:PRINT "LOCATE";
- 860 LOCATE CSRLIN,54:PRINT "RANDOMIZE";
- 870 COLOR 0,7
- 880 LOCATE CSRLIN,56:PRINT " lin.taper potentiometer"
- 890 COLOR 7,0
- 900 '
- 910 '.....shaft rotation
- 920 FOR Z=1 TO 10
- 930 SR(Z)=Z*10 '% shaft rotation
- 940 NEXT Z
- 950 MAX=R1*R2/(R1+R2) 'value of R at 100% rotation
- 960 G=1/((R2/(R/2)-1)/R2) 'value of r1 at 1/2 R
- 970 GG=G/R1*100:SR(11)=GG '% shaft rotation for R/2
- 980 '
- 990 '.....calculate rotation & display
- 1000 FOR Z=1 TO 10
- 1010 IF Z=10 THEN COLOR 15
- 1020 PRINT USING "###.#";SR(Z);:PRINT " %"; '% rotation
- 1030 COLOR 7,0
- 1040 C=SR(Z)*R1/100 'value of R1
- 1050 D=C*R2/(C+R2) 'value of R
- 1060 PRINT USING U1$;C;
- 1070 IF Z=10 THEN COLOR 15
- 1080 PRINT USING U1$;D;
- 1090 COLOR 7,0
- 1100 PRINT " ";
- 1110 '
- 1120 '.....bar chart
- 1130 B=CINT(25*D/R)
- 1140 LOCATE CSRLIN,29
- 1150 COLOR 4:PRINT STRING$(B,"CSRLIN");
- 1160 IF Z=10 THEN LOCATE CSRLIN,30:COLOR 14,4:PRINT "= R";
- 1170 COLOR 7,0
- 1180 LOCATE CSRLIN,54
- 1190 PRINT "OPEN"
- 1200 NEXT Z
- 1210 '
- 1220 PRINT STRING$(53,196);"<0xB6!>"
- 1230 PRINT USING "###.#";GG;
- 1240 PRINT " %";:PRINT USING U1$;G;R/2;
- 1250 PRINT " ";:COLOR 14,4
- 1260 PRINT " = RENUMR ";:COLOR 7,0:PRINT " *(See Notes) ":
- 1270 '
- 1280 COLOR 7,0:LOCATE CSRLIN-1,54:PRINT "OPEN"
- 1290 PRINT UL$;
- 1300 LOCATE CSRLIN-1,54:PRINT "LOCATE"
- 1310 COLOR 0,7
- 1320 PRINT " * NOTES:";
- 1330 COLOR 7,0
- 1340 PRINT" The resistance curve of the customized potentiometer is not linear."
- 1350 PRINT" A precision parallel resistor (R2) will be designed for you ";
- 1360 PRINT"when you EXIT."
- 1370 GOSUB 2220
- 1380 LOCATE 25,1:PRINT ER$;:LOCATE 25,11
- 1390 COLOR 15,1
- 1400 PRINT " Do you want to calculate current through R1 & R2 ? (y/n) ";
- 1410 COLOR 7,0
- 1420 Z$=INKEY$
- 1430 IF Z$="n"THEN E=-1:GOTO 2190
- 1440 IF Z$="y"THEN 1470
- 1450 GOTO 1420
- 1460 '
- 1470 '.....calculate current
- 1480 LOCATE 24,1:PRINT ER$;
- 1490 LOCATE 25,1:PRINT ER$;
- 1500 COLOR 0,7
- 1510 LOCATE 19,1:INPUT " ENTER: Voltage across R ";E
- 1520 COLOR 7,0
- 1530 LOCATE 19,1:PRINT STRING$(50,196)
- 1540 LOCATE 24,2
- 1550 PRINT "Currents shown above are in ma. for a voltage drop across R of";
- 1560 COLOR 0,7:PRINT E;"volts ";
- 1570 COLOR 7,0
- 1580 LOCATE 7,29:PRINT STRING$(24,32)
- 1590 LOCATE 7,32:PRINT " I(R1)+ I(R2)= I(R) "
- 1600 '
- 1610 FOR Z=1 TO 10
- 1620 LOCATE Z+8,29
- 1630 PRINT STRING$(22,32):LOCATE CSRLIN-1,32
- 1640 C=SR(Z)*R1/100
- 1650 D=C*R2/(C+R2)
- 1660 PRINT USING "#####.#";E/C*10^3;
- 1670 PRINT USING "####.#";E/R2*10^3;
- 1680 PRINT USING "#####.#";E/D*10^3;
- 1690 PRINT " "
- 1700 NEXT Z
- 1710 GOTO 2180
- 1720 '
- 1730 '.....preface
- 1740 T=8
- 1750 PRINT TAB(T);
- 1760 PRINT " The resistance curve of this custom potentiometer is not linear."
- 1770 PRINT TAB(T);
- 1780 PRINT "It has a taper approximately as shown in the block graph on the"
- 1790 PRINT TAB(T);
- 1800 PRINT "screen display."
- 1810 PRINT TAB(T);
- 1820 PRINT " Choose a standard potentiometer as close as possible to the"
- 1830 PRINT TAB(T);
- 1840 PRINT "custom full scale value you have specified. The closer the standard"
- 1850 PRINT TAB(T);
- 1860 PRINT "potentiometer is to the specified custom value the more linear will"
- 1870 PRINT TAB(T);
- 1880 PRINT "be the resistance curve.
- 1890 PRINT TAB(T);
- 1900 PRINT " If the value of the standard potentiometer is far removed from"
- 1910 PRINT TAB(T);
- 1920 PRINT "the specified custom value then part of the custom range will be"
- 1930 PRINT TAB(T);
- 1940 PRINT "crowded near one end of the shaft rotation."
- 1950 PRINT TAB(T);
- 1960 PRINT " You may want to experiment with ";CHR$(34);"far removed";
- 1970 PRINT CHR$(34);" audio taper"
- 1980 PRINT TAB(T);
- 1990 PRINT "potentiometers. If you get lucky you could end up with a near"
- 2000 PRINT TAB(T);
- 2010 PRINT "linear resistance curve even if the rotation may be in the wrong"
- 2020 PRINT TAB(T);
- 2030 PRINT "direction. Who cares? If you weren't an experimenter you wouldn't"
- 2040 PRINT TAB(T);
- 2050 PRINT "be messing about with this anyway."
- 2060 PRINT TAB(T);
- 2070 PRINT " The custom potentiometer consists of a linear potentiometer in"
- 2080 PRINT TAB(T);
- 2090 PRINT "parallel with a fixed bridging resistance. When you exit the"
- 2100 PRINT TAB(T);
- 2110 PRINT "program the final screen display will show how two standard"
- 2120 PRINT TAB(T);
- 2130 PRINT "resistors in parallel will provide a bridging resistor within"
- 2140 PRINT TAB(T);
- 2150 PRINT "about 1% of the required bridge resistance."
- 2160 RETURN
- 2170 '
- 2180 GOSUB 2220
- 2190 CLS:R=R2
- 2200 CHAIN"precires" 'precision resistor program
- 2210 '
- 2220 'HARDCOPY
- 2230 GOSUB 2340:LOCATE 25,2:COLOR 14,6
- 2240 PRINT " Press 1 to print screen, 2 to print screen & ";
- 2250 PRINT "advance paper, or 3 to continue.";:COLOR 7,0
- 2260 Z$=INKEY$:IF Z$="3"THEN GOSUB 2340:RETURN
- 2270 IF Z$="1"OR Z$="2"THEN GOSUB 2340:GOTO 2290
- 2280 GOTO 2260
- 2290 FOR QX=1 TO 24:FOR QY=1 TO 80
- 2300 LPRINT CHR$(SCREEN(QX,QY));
- 2310 NEXT QY:NEXT QX
- 2320 IF Z$="2"THEN LPRINT CHR$(12)
- 2330 GOTO 2230
- 2340 LOCATE 25,1:PRINT STRING$(80,32);:RETURN
-